package com.kaigejava;

import java.util.LinkedHashMap;
import java.util.Map;

public class LRUCache<k,v> extends LinkedHashMap<k,v> {
    private final int CACHE_SIZE;

    public LRUCache(int chcheSize){
        //初始化hashMap的大小。同时最后一个true值的时候让linkedHashMap按照访问顺序进行排序，最近访问的放在头，最老访问的放在尾部
        super((int)Math.ceil(chcheSize/0.75)+1,0.75f,true);
        CACHE_SIZE = chcheSize;
    }

    @Override
    protected boolean removeEldestEntry(Map.Entry<k, v> eldest) {
        //当Map中的数据量大约指定的缓存个数的时候，就自动删除最老的数据
        return size()>CACHE_SIZE;
    }
}
